[レポート]Full-stack AI with the AWS Amplify AI kit (FWM202) #AWSreInvent
こんにちは、森田です。
本記事は「AWS re:Invent 2024 - Full-stack AI with the AWS Amplify AI kit (FWM202)」のセッションレポートです。
概要
Generative AI is transforming full-stack development. In this session, learn how AWS Amplify, Amazon Q, and Amazon Bedrock work together to streamline building generative AI applications. See how Amplify helps developers build AI-driven features like intelligent search, summarization, content generation, and interactive chatbots backed by Amazon Bedrock. The session also shows how Amplify with Amazon Q can accelerate your development process.
生成 AI はフルスタック開発を変革しています。このセッションでは、AWS Amplify、Amazon Q、Amazon Bedrock がどのように連携して生成 AI アプリケーションの構築を効率化するかを学びます。 Amplify が開発者によるインテリジェントな検索、要約、コンテンツ生成、Amazon Bedrock を活用したインタラクティブなチャットボットなどの AI 主導の機能の構築をどのように支援するかをご覧ください。このセッションでは、Amplify with Amazon Q がどのように開発プロセスを加速できるかについても説明します。
スピーカー
- Danny Banks
- AWS Principal Design Technologist
- Banjo Obayomi
- AWS Senior Developer Advocate
- Ali Spittel
- AWS Head of Developer Advocacy, North America
セッション動画
3行まとめ
- AWSにあるAIサービスの整理、レイヤーの違いがある
- Amplify の Gen2(Amplify Data, Amplify Auth)についての紹介
- Amplify AI kit で提供している GenAI Backend, チャット型UIをデモを交えて紹介
AWS における AI Stack
AWSでのAIスタックは、3レイヤーで分かれています。
よくある課題として「AWSのどのAIサービスを利用すれば良いか」があります。
この関係性を理解しておくことでサービス選定に役に立ちそうです。
Applications to Boost Productivity
生成AIアプリケーションをすぐに活用できるサービス
- Amazon Q Business
- Amazon Q Developer
Models and Tools to Build Generative AI Apps
様々なAIにすぐに利用でき、AIを利用するために便利な機能も展開されている
- Amazon Bedrock
Infrastructure to Build and Train AI Models
実際にモデルを開発して、エンドポイントまで作成するため、より高度な知識が必要
一方で、詳細なカスタマイズができる
- Amazon SageMaker
- AWS Trainium / AWS Inferentia / GPUs
個人的には、「Applications to Boost Productivity」レイヤーを使いたいですが、現在は、Amazon Q Business は英語のみの対応となっています。
そのため、日本語を使いたい場合は、「Models and Tools to Build Generative AI Apps」になります。
AWS Amplify Gen1 と Gen2
2024年に AWS Amplify Gen2 が登場しました。
TypeScriptが標準となり、型安全なコードを書く事が可能
開発者毎にサンドボックス環境を用意できるようになり、より柔軟な検証やテストが可能
バックエンドのデプロイ方法がCLIからCDK(L3 Construct)に変更となり、コードを変更する事でAWSリソースのカスタマイズや追加が容易に
Gen1 については、CLIベースでのリソースのプロビジョニングでしたが、Gen2 では、CDKでプロビジョニングできる点が良いですね。
また、以下のようにサンドボックス環境を用意できるため、依存関係を気にせず、開発を進めることもできます。
Amplify AI kit
Amplify を使って AI アプリケーションをフルスタックに構築できる機能です。
この機能は、re:Invent2024の前にリリースされました。
Amazon Bedrock をコードファーストで
const schema = a.schema({
chat: a
.conversation({
aiModel: a.ai.model("Claude 3.5 Haiku"),
systemPrompt: "You are a helpful assistant, that",
tools: [
a.ai.dataTool({
name: "MerchQuery",
description: "Search for questions regarding",
model: a.ref("Items"),
modelOperation: "List"
})
]
})
.authorization((allow) => allow.owner())
});
上記のようにTypeScriptで、LLMを使うために必要なリソースの構築が可能となっており、コードベースで開発を行うことができます。
このバックエンドリソースは、AppSync API、Lambda、Bedrockを使って実現されています。
セキュアにデータアクセスが可能となる機能も提供されています。
Conversational UI
アプリ開発では、APIを呼び出す以外にもUIの開発が必要です。
このUIも Amplify から提供されています。
デモ
以下のリポジトリを使ったライブコーティングが行われました。
開発ツールとして、Amazon Q Developer を使う方法も紹介しています。
最終的には以下のようなチャットアプリケーションを作ることができました。
さいごに
Amplify Gen2、AI kit の利便性がわかるセッションでした。
素早く AI アプリケーションを開発したいケースでは、採用を検討すると良さそうです。
また、セッション冒頭にあった AI サービスのレイヤーごとの違いは、AI アプリケーションを開発する際のサービス選定の助けになりそうです。
今後時間があるときにデモアプリケーションの起動もやってみたいと思います。